package com.note.app.utils;

import com.note.app.dto.UserDTO;
import com.note.common.domain.User;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;

/**
 * Bean转换工具类
 * 用于实体对象和DTO对象之间的转换
 */
@Slf4j
public class BeanConverterUtils {

    /**
     * 将用户实体转换为用户DTO
     * 
     * @param user 用户实体
     * @return 用户DTO
     */
    public static UserDTO convertToUserDTO(User user) {
        if (user == null) {
            return null;
        }
        
        UserDTO userDTO = new UserDTO();
        BeanUtils.copyProperties(user, userDTO);
        return userDTO;
    }

    /**
     * 将用户实体转换为用户DTO，并设置令牌
     * 
     * @param user 用户实体
     * @param token 令牌
     * @return 用户DTO
     */
    public static UserDTO convertToUserDTO(User user, String token) {
        UserDTO userDTO = convertToUserDTO(user);
        if (userDTO != null) {
            userDTO.setToken(token);
        }
        return userDTO;
    }
} 